# -*- coding: utf-8 -*-
from django.db import models
from django.contrib.auth.models import User
from datetime import datetime
from django.core.urlresolvers import reverse
from Scope.thumbs import ImageWithThumbsField
from Scope.models import BaseNoticia
#PUBLICIDADES_TIPOS = (('1','Ilha Destaque 310x275'),('2','Tijolo Eventos 300x55'),('3','Tijolo Humor 300x55'),('4','Ilha Humor 300x265'),('5','Tijolo Vídeos 300x55'),('6','Tijolo Músicas 300x55'),('7','Interna Quadrada 260x260'),('8','Interna Wide 260x145'))
PUBLICIDADES_TIPOS = (
    ('1','Retângulo médio 300x250'),
    ('2','Cabeçalho 728 x 90'),
    ('3','Banner 468 x 60'),
    ('4','Meia página 300 x 600'),
)

class Logradouros(models.Model):
    endereco= models.CharField('Endereço', max_length=64, blank=True, null=True)
    cep = models.CharField('CEP', max_length=9, blank=True, null=True)
    bairro = models.CharField('Bairro', max_length=16, blank=True, null=True)
    cidade = models.CharField('Cidade', max_length=40, blank=True, null=True)
    uf = models.CharField('UF', max_length = 2, default='PI', blank=True, null=True)
    class Meta:
        abstract = True

class Empresa(Logradouros):
    nome = models.CharField(max_length=50)
    cnpj = models.CharField(max_length=18, blank=True, null=True)
    telefone = models.CharField('Telefone', max_length=12, unique=True)
    responsavel = models.CharField('Responsável', max_length=100, blank=True, null=True)
    telefoneresponsavel = models.CharField('Telefone', max_length=12, blank=True, null=True)
    website = models.URLField(max_length=50, blank=True, null=True)
    logo = models.ImageField(upload_to='arquivos/empresa/', blank=True, null=True)
    datacriacao = models.DateTimeField(auto_now_add=True)
    dataedicao = models.DateTimeField(auto_now=True)
    autor = models.ForeignKey(User, blank=True, null=True)
    cliques = models.IntegerField('Cliques', default=0, editable=False)
    def __unicode__(self):
        return  self.nome

class BasePublicidade(models.Model):
    nome = models.CharField(max_length=50)
    link = models.URLField(blank=True, null=True, verify_exists=False)
    ativo = models.BooleanField(default=True)
    dataentrada = models.DateTimeField(default=datetime.now)
    datasaida = models.DateTimeField()
    nomeEmpresa = models.ForeignKey(Empresa)
    arquivo = models.FileField(upload_to="arquivos/publicidade")
    datacriacao = models.DateTimeField(auto_now_add=True)
    dataedicao = models.DateTimeField(auto_now=True)
    autor = models.ForeignKey(User, blank=True, null=True)
    class Meta:
        abstract = True

class Publicidade(BasePublicidade):
    tipo = models.CharField(max_length=2, choices=PUBLICIDADES_TIPOS)
    def __unicode__(self):
        return  self.nome

class Local(BaseNoticia):
    nomeEmpresa = models.ForeignKey(Empresa, verbose_name='Empresa')
    imagem = ImageWithThumbsField('Imagem Destaque', upload_to='arquivos/empresa/', sizes=((800,600),(300,225)))
    sluglocal = models.SlugField(max_length=200, blank=True, unique=True, editable=False)
    def __unicode__(self):
        return  self.nomeEmpresa.nome
    class Meta:
        verbose_name_plural = 'Locais'
    def get_absolute_url(self):
        return reverse('Scope.views.local', kwargs={'sluglocal': self.sluglocal})

# SIGNALS
from django.db.models import signals
from django.template.defaultfilters import slugify
def local_pre_save(signal, instance, sender, **kwargs):
    instance.sluglocal = slugify(instance.nomeEmpresa.nome)

signals.pre_save.connect(local_pre_save, sender=Local)